var _n47;
var cc__extends = __extends;
var cc__decorate = __decorate;
var cc__importDefault = __importDefault;
Object.defineProperty(exports, "__esModule", {
  value: true
});
var $1$Coin_fly_to_wallet = require("Coin_fly_to_wallet");
var s = cc__importDefault($1$Coin_fly_to_wallet);
var $1$uiService = require("uiService");
var c = cc__importDefault($1$uiService);
var $zqcc_OverallSystem = require("zqcc_OverallSystem");
var $1$zqcc_pageBase = require("zqcc_pageBase");
var u = cc__importDefault($1$zqcc_pageBase);
var cc__decorator = cc._decorator;
var ccp_ccclass = cc__decorator.ccclass;
var ccp_property = cc__decorator.property;
var def_TyOverPage = function (t) {
  function _ctor() {
    const instance = (t !== null) ? t.apply(this, arguments) : this; // 调用 t，或者使用当前上下文

    // 初始化属性
    instance.pageName = "通用失败页";
    instance.passNode = null;
    instance.passNode2 = null;
    instance.lossNode = null;
    instance.caiNode = null;
    instance.bgkuang = null;
    instance.moshi = 1; // 模式
    instance.starsNumber = 200; // 星星数量
    instance.huodejinbi = 45; // 获得金币数量
    instance.show = false; // 控制显示状态

    return instance; // 返回对象
  }
  cc__extends(_ctor, t);
  _ctor.prototype.setCloseDoFun = function (t) {
    this.colseDoFun = t;
  };
  _ctor.prototype.start = function () {
    this._init();
  };
  _ctor.prototype._init = function () {
    this.open();
  };
  _ctor.prototype.initData = function (t) {
    const instance = this; // 更明确的实例引用
    cc.log(t); // 打印状态 t
    this.moshi = t.newgame; // 设置模式为新游戏
    this.passNode.active = t.pass; // 根据 t.pass 启用/禁用 passNode
    this.lossNode.active = !t.pass; // 根据 t.pass 启用/禁用 lossNode

    if (!t.pass) {
      this.bgkuang.opacity = 0; // 隐藏背景框
      const lossIcon = this.lossNode.getChildByName("icon");
      const btnNode = this.lossNode.getChildByName("btnNode");
      lossIcon.active = false; // 隐藏损失节点的图标
      btnNode.active = false; // 隐藏按钮节点
      this.lossNode.active = false; // 隐藏损失节点
      this.caiNode.active = true; // 显示彩蛋节点

      // 更新金币数量标签
      this.lossNode.getChildByName("jinbishu").children[0].getComponent(cc.Label).string = `x${this.huodejinbi}`;

      // 计划延迟事件
      this.scheduleOnce(() => {
        instance.lossNode.active = true; // 显示损失节点
        instance.caiNode.active = false; // 隐藏彩蛋节点
        instance.bgkuang.opacity = 255; // 显示背景框
        instance.node.getChildByName("bg").opacity = 150; // 设置背景透明度
        lossIcon.active = true; // 显示损失节点的图标
        btnNode.active = true; // 显示按钮节点
      }, 2);
    }

    if (t.pass) {
      // 计算获得的金币
      if (t.starsNumber) {
        this.huodejinbi = Math.floor(t.starsNumber / 10) || 1; // 计算获得的金币
        this.starsNumber = t.starsNumber; // 保存星星数量
        this.passNode.getChildByName("jinbishu").children[0].getComponent(cc.Label).string = `x${this.huodejinbi}`; // 更新金币数量标签
      }

      // 更新金币数量标签
      this.passNode.getChildByName("jinbishu").children[0].getComponent(cc.Label).string = `x${this.huodejinbi}`;

      if (t.passPage2) {
        this.passNode.active = false; // 隐藏 passNode
        this.caiNode.active = true; // 显示彩蛋节点
        this.bgkuang.opacity = 0; // 隐藏背景框

        // 计划延迟事件
        this.scheduleOnce(() => {
          instance.bgkuang.opacity = 255; // 显示背景框
          instance.caiNode.active = false; // 隐藏彩蛋节点
          instance.passNode.active = false; // 隐藏 passNode
          instance.passNode2.active = true; // 显示 passNode2
          instance.passNode2.getChildByName("jinbishu").children[0].getComponent(cc.Label).string = "x0"; // 重置金币数标签
          instance.passNode.getChildByName("title").active = false; // 隐藏标题

          // 更新 xinjilu 显示状态
          const xinjiluNode = instance.passNode2.getChildByName("xinjilu");
          xinjiluNode.active = t.xinjilu;
          xinjiluNode.scale = 1.2; // 初始缩放
          cc.tween(xinjiluNode)
            .delay(0.5)
            .to(0.2, { scale: 0.8 })
            .to(0.1, { scale: 1 })
            .start(); // 动画效果

          // 更新星星数量
          instance.passNode2.getChildByName("xx").children[0].getComponent(cc.Label).string = `x${instance.starsNumber}`;

          instance.scheduleOnce(() => {
            instance.node.getComponent(s.default).playAnim(t.starsNumber > 20 ? 20 : t.starsNumber); // 播放动画
            instance.scheduleOnce(() => {
              instance.passNode2.getChildByName("xx").children[0].getComponent(cc.Label).string = "x0"; // 重置星星数量
              instance.passNode2.getChildByName("jinbishu").children[0].getComponent(cc.Label).string = `x${instance.huodejinbi}`; // 更新金币数量
            }, 1.5);
          });
        }, 2);
      }
      $zqcc_OverallSystem.sers().userSrv.addCoin(this.huodejinbi); // 添加金币
    }


    this.touzi();
  };
  _ctor.prototype.fanbei = function (t) {
    const instance = this; // 更明确的实例引用
    const touzi1 = this.passNode.getChildByName("touzi"); // 获取第一个 "touzi" 节点
    const touzi2 = this.passNode2.getChildByName("touzi"); // 获取第二个 "touzi" 节点
    touzi1.stopAllActions(); // 停止第一个 "touzi" 节点的所有动画
    touzi2.stopAllActions(); // 停止第二个 "touzi" 节点的所有动画
    const button = t.currentTarget; // 获取当前目标

    $zqcc_OverallSystem.sers().platformSrv.platformApi.loadAndShowVideoAd(
      function () { // 广告加载完成后的回调
        touzi1.stopAllActions(); // 停止动画
        touzi2.stopAllActions(); // 停止第二个 "touzi" 节点的动画

        let multiplier = 2; // 初始化 multiplier 为 2
        const absoluteX = Math.abs(touzi1.x); // 获取 "touzi" 节点的 x 坐标绝对值

        // 根据坐标绝对值设置 multiplier
        if (absoluteX < 42.5) {
          multiplier = 5;
        } else if (absoluteX < 92.5) {
          multiplier = 4;
        } else if (absoluteX < 152.5) {
          multiplier = 3;
        }

        button.getComponent(cc.Button).interactable = false; // 禁用按钮交互
        instance.show = true; // 显示状态
        const totalCoins = instance.huodejinbi * multiplier;
        $zqcc_OverallSystem.sers().userSrv.addCoin(totalCoins - instance.huodejinbi); // 更新金币数量
        $zqcc_OverallSystem.sers().uiSrv.showMessage("获得" + totalCoins + "金币"); // 显示消息
      },
      function () { },
      function () {
        instance.touzi(); // 广告观看完成后执行 touzi
      },
      {
        scene: "游戏结束页面",
        event: "金币翻倍"
      },
      "common_video"
    );
  };
  _ctor.prototype.tiqianlingqu = function (t) {
    const instance = this; // 更明确的实例引用
    const button = t.currentTarget; // 获取当前目标
    $zqcc_OverallSystem.sers().platformSrv.platformApi.loadAndShowVideoAd(function () {
      const touzi1 = instance.passNode.getChildByName("touzi"); // 获取第一个 "touzi" 节点
      touzi1.stopAllActions(); // 停止第一个 "touzi" 的所有动画
      instance.passNode2.getChildByName("touzi").stopAllActions(); // 停止第二个 "touzi" 的所有动画
      instance.lossNode.getChildByName("touzi").stopAllActions(); // 停止损失节点的 "touzi" 动画

      let multiplier = 2; // 初始化 multiplier
      const absoluteX = Math.abs(touzi1.x); // 获取 "touzi" 节点的 x 坐标绝对值

      // 根据 x 坐标的绝对值调整 multiplier
      if (absoluteX < 42.5) {
        multiplier = 5;
      } else if (absoluteX < 92.5) {
        multiplier = 4;
      } else if (absoluteX < 152.5) {
        multiplier = 3; // 在这里直接设置 multiplier
      }

      button.getComponent(cc.Button).interactable = false; // 禁用按钮交互
      const totalCoins = instance.huodejinbi * multiplier; // 计算总金币
      $zqcc_OverallSystem.sers().userSrv.addCoin(totalCoins); // 更新金币数量
      $zqcc_OverallSystem.sers().uiSrv.showMessage(`获得${totalCoins}金币`); // 显示消息
    }, function () { }, function () {
      instance.touzi(); // 广告播放完成后的回调
    }, {
      scene: "游戏结束页面",
      event: "提前领取" // 广告事件
    }, "common_video");
  };
  _ctor.prototype.touzi = function () {
    const nodes = [
      this.passNode.getChildByName("touzi"), // 获取第一个节点
      this.passNode2.getChildByName("touzi"), // 获取第二个节点
      this.lossNode.getChildByName("touzi")   // 获取第三个节点
    ];

    // 停止所有节点的动作并设置动画
    nodes.forEach(node => {
      node.stopAllActions(); // 停止当前节点的所有动作
      cc.tween(node)
        .to(0.5, { x: 222.5 }) // 向右移动
        .to(0.5, { x: 0 })     // 回到原点
        .to(0.5, { x: -222.5 }) // 向左移动
        .to(0.5, { x: 0 })     // 再次回到原点
        .union()
        .repeatForever()
        .start(); // 启动动画
    });
  };
  _ctor.prototype.share = function () {
    $zqcc_OverallSystem.sers().platformSrv.platformApi.shareAppMessage();
  };
  _ctor.prototype.newGame = function () {
    if (!this.show) {
      this.show = true; // 设置显示状态为 true
      $zqcc_OverallSystem.sers().uiSrv.showMessage(`获得${this.huodejinbi}金币`); // 使用模板字符串显示消息
    }

    $zqcc_OverallSystem.mgrs().soundMgr.playBtnSound(); // 播放按钮音效

    // 检查模式是否为 2 或 3
    if (this.moshi !== 2 && this.moshi !== 3) {
      // 检查能量
      if ($zqcc_OverallSystem.sers().userSrv.power <= 0) {
        return $zqcc_OverallSystem.sers().uiSrv.showUserGetPowerPage(); // 如果没有能量，显示获取能量页面
      }
      $zqcc_OverallSystem.sers().userSrv.addPower(-1); // 减少能量
    }

    $zqcc_OverallSystem.mgrs().gameMgr.enterMode(this.moshi); // 进入相应模式
  };
  _ctor.prototype.restartGame = function () {
    $zqcc_OverallSystem.mgrs().soundMgr.playBtnSound(); // 播放按钮音效

    // 检查模式是否为 2 或 3
    if (this.moshi !== 2 && this.moshi !== 3) {
      // 检查能量
      if ($zqcc_OverallSystem.sers().userSrv.power <= 0) {
        $zqcc_OverallSystem.sers().uiSrv.showUserGetPowerPage(); // 显示获取能量页面
        return; // 直接退出
      }
      $zqcc_OverallSystem.sers().userSrv.addPower(-1); // 减少能量
    }

    $zqcc_OverallSystem.mgrs().gameMgr.enterMode(this.moshi); // 进入相应模式
  };
  _ctor.prototype.open = function () {
    // 打开基本动画并处理结果
    c.default.openPageBasicAni(this.showNode, true)
      .then(() => {
        // 动画完成后执行的逻辑可以在此处添加
      })
      .catch(error => {
        // 处理可能发生的错误
        console.error('打开动画时发生错误:', error);
      });
  };
  _ctor.prototype.close = function () {
    const context = this; // 使用更具可读性的变量名
    // 隐藏广告横幅
    $zqcc_OverallSystem.sers().platformSrv.platformApi.hideBanner();

    // 关闭动画，并在动画结束后执行后续操作
    this.closeAni()
      .then(async () => {
        // 删除页面记录
        $zqcc_OverallSystem.sers().uiSrv.deletePageRecord(context.id);
        // 销毁节点
        context.node.destroy();
      })
      .catch(error => {
        // 错误处理中添加日志或处理逻辑
        console.error('关闭动画时发生错误:', error);
      });
  };
  _ctor.prototype.onlyClose = function () {
    const context = this; // 使用更具可读性的变量名

    // 关闭动画并在完成后执行后续操作
    this.closeAni()
      .then(() => {
        // 删除页面记录
        $zqcc_OverallSystem.sers().uiSrv.deletePageRecord(context.id);
        // 销毁节点
        context.node.destroy();
      })
      .catch(error => {
        // 处理错误情况
        console.error('关闭动画时发生错误:', error);
      });
  };
  _ctor.prototype.OnBtnClose = function () {
    $zqcc_OverallSystem.mgrs().soundMgr.playBtnSound();
    $zqcc_OverallSystem.mgrs().gameMgr.backHomePage();
    this.close();
    cc.log("OnBtnClose");
  };
  _ctor.prototype.backIndex = function () {
    this.OnBtnClose();
  };
  _ctor.prototype.closeAni = function (t) {
    undefined === t && (t = false);
    return c.default.closePageBasicAni(this.showNode, t);
  };
  _ctor.prototype.update = function () {
    // 获取节点
    const getNodeChild = (parentNode, childName) => parentNode.getChildByName(childName);
    const updateRewardLabel = (node, multiplier) => {
      node.getChildByName("btnLayout").getChildByName("fanbei").children[0].children[1].getComponent(cc.Label).string = multiplier + "倍领奖";
    };

    // 计算倍数的函数
    const calculateMultiplier = (xPosition) => {
      const absX = Math.abs(xPosition);
      if (absX < 42.5) return 5;
      if (absX < 92.5) return 4;
      return absX < 152.5 ? 3 : 2;
    };

    // 获取并更新奖励倍数
    const t = getNodeChild(this.passNode, "touzi");
    const n = calculateMultiplier(t.x);
    updateRewardLabel(this.passNode, n);

    const e = getNodeChild(this.passNode, "touzi");
    const r = calculateMultiplier(e.x);
    updateRewardLabel(this.passNode2, r);

    const o = getNodeChild(this.lossNode, "touzi");
    const s = calculateMultiplier(o.x);
    this.lossNode.getChildByName("btnNode").getChildByName("fanbei").children[0].children[1].getComponent(cc.Label).string = "提前" + s + "倍领奖";
  };
  cc__decorate([ccp_property(cc.Node)], _ctor.prototype, "passNode", undefined);
  cc__decorate([ccp_property(cc.Node)], _ctor.prototype, "passNode2", undefined);
  cc__decorate([ccp_property(cc.Node)], _ctor.prototype, "lossNode", undefined);
  cc__decorate([ccp_property(cc.Node)], _ctor.prototype, "caiNode", undefined);
  cc__decorate([ccp_property(cc.Node)], _ctor.prototype, "bgkuang", undefined);
  return cc__decorate([ccp_ccclass], _ctor);
}(u.default);
exports.default = def_TyOverPage;